package ribbon;

import com.netflix.loadbalancer.IRule;
import com.netflix.loadbalancer.RandomRule;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * 测试ribbon client细粒度配置需要，主要是为了避免ribbon配置的全局生效
 */
@Configuration
public class RibbonConfig {

    /**
     * ribbon内置的随机策略
     */
//    @Bean
//    public IRule iRule(){
//        return new RandomRule();
//    }

    /**
     * 使用nacos client 实现基于权重的策略
     */
//    @Bean
//    public IRule iRule(){
//        return new MyRibbonRule();
//    }

    /**
     *采用nacos client 实现优先调用相同机房服务的策略
     */
//    @Bean
//    public IRule iRule(){
//        return new MyRibbonRuleSameCluster();
//    }

    /**
     *采用nacos client + 元数据，实现对微服务版本的控制（v1服务只能v1服务）
     */
    @Bean
    public IRule iRule(){
        return new MyRibbonRuleMetadata();
    }
}
